home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d883.lha / BBBBS / BBDoors58.lha / rexxDoors / StoryBoard.rexx < prev    next >
OS/2 REXX Batch file  |  1993-01-27  |  5KB  |  219 lines

  1. /* Story Writer 1.0 by Nathan Beaty */
  2.  
  3. signal on syntax
  4. signal on ioerr
  5. signal on BREAK_C
  6.  
  7. /* Open the support library if it is not already open. */
  8. if ~show('L',"rexxsupport.library") then do
  9.    if ~addlib('rexxsupport.library',0,-30,0) then do
  10.       CALL TRANSMIT 'Support library not available.  Aborting...'
  11.       call CloseShop
  12.       exit 10
  13.       end
  14.    end
  15.  
  16. figarg='s:CONFIG.BBS'
  17. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  18. x=OPEN(f,figarg,'R')
  19. IF x=0 THEN
  20.   DO
  21.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  22.     EXIT(20)
  23.   END
  24.  
  25. line=STRIP(READLN(f))
  26. sysop=WORD(READLN(f),1)
  27. CALL CLOSE(f)
  28.  
  29. compos=POS('/*',line)
  30. IF compos>0 THEN line=LEFT(line,compos-1)
  31. BBSNAME=STRIP(line)
  32. bbspath=GETCLIP('BBS_path')
  33.  
  34. PARSE ARG name . . gfx 
  35. CALL MAKEDIR(bbspath'rexxDoors/Data/StoryBoard')
  36. DATFILE1 = bbspath'rexxDoors/Data/StoryBoard/story1'
  37. DATFILE2 = bbspath'rexxDoors/Data/StoryBoard/story2'
  38. DATFILE3 = bbspath'rexxDoors/Data/StoryBoard/story3'
  39. MFILE1 = 'Story 1 - unnamed'
  40. MFILE2 = 'Story 2 - unnamed'
  41. MFILE3 = 'Story 3 - unnamed'
  42. DATFILE = DATFILE1
  43. MFILE = MFILE1
  44.  
  45. CLS = ''
  46. if (gfx) then do
  47.  OFF = ''
  48.  RED = ''
  49.  YEL = ''
  50.  BLU = ''
  51.  REDWHT = ''
  52.  WHTBLU = ''
  53.  end
  54. else do
  55.  OFF = ''
  56.  RED = ''
  57.  YEL = ''
  58.  BLU = ''
  59.  REDWHT = ''
  60.  WHTBLU = ''
  61.  end
  62.  
  63. BEGIN:
  64. CALL TRANSMIT CLS
  65. CALL TRANSMIT REDWHT'Story Board!   By Nathan Beaty'
  66. CALL TRANSMIT OFF '------------------------------'
  67. CALL TRANSMIT BLU'You are currently in 'RED MFILE
  68. CALL TRANSMIT ' '
  69. CALL TRANSMIT WHTBLU'[1]'OFF BLU'      - change to' MFILE1
  70. CALL TRANSMIT WHTBLU'[2]'OFF BLU'      - change to' MFILE2
  71. CALL TRANSMIT WHTBLU'[3]'OFF BLU'      - change to' MFILE3
  72. CALL TRANSMIT ' '
  73. CALL TRANSMIT WHTBLU'[A]'OFF BLU'      - Add to' RED MFILE
  74. CALL TRANSMIT WHTBLU'[V]'OFF BLU'      - View  ' RED MFILE
  75. CALL TRANSMIT WHTBLU'[Q]uit'OFF BLU'   - return to 'YEL||BBSNAME||OFF
  76. CALL TRANSMIT ' '
  77. OPTIONS PROMPT YEL 'Option: '
  78. PULL opt
  79. CALL TRANSMIT opt
  80. select
  81.   when opt='1' then do
  82.      DATFILE = DATFILE1
  83.      MFILE = MFILE1
  84.   signal BEGIN
  85.   end
  86.   when opt='2' then do
  87.      DATFILE = DATFILE2
  88.      MFILE = MFILE2
  89.   signal BEGIN
  90.   end
  91.   when opt='3' then do
  92.      DATFILE = DATFILE3
  93.      MFILE = MFILE3
  94.   signal BEGIN
  95.   end
  96.   when opt='A' then do
  97.     call GETLINE
  98.   end
  99.   when opt='V' then do
  100.     CALL TRANSMIT cls
  101.     CALL TRANSMIT MFILE
  102.     CALL TRANSMIT '-----------------------------------------------------------'OFF
  103.     x=OPEN(f,DATFILE,'R')
  104.     IF x~=0 THEN
  105.       DO i=1
  106.         line=READLN(f)
  107.         IF EOF(f) THEN LEAVE i
  108.         CALL TRANSMIT line
  109.       END
  110.     CALL CLOSE(f)
  111.     OPTIONS PROMPT YEL'Press Return 'OFF
  112.     PULL junk
  113.     CALL TRANSMIT ''
  114.     signal BEGIN
  115.   end
  116.   when opt='Q' then do
  117.     CALL TRANSMIT ' '
  118.     CALL TRANSMIT 'Returning to 'BBSNAME
  119.     exit
  120.     end
  121.   otherwise signal BEGIN
  122.   end
  123. signal BEGIN
  124.  
  125. GETLINE:
  126.  CALL TRANSMIT CLS
  127.  OPTIONS PROMPT 'Add how many lines?  (1-5) >'
  128.  PULL LINEN
  129.  if LINEN < 1 or LINEN > 5 then call getline
  130.  
  131.  CALL TRANSMIT '>-Enter 'LINEN' Lines - Return to Quit - .......................................|'
  132.  ADD  = ''
  133.  line = ' '
  134.  do for LINEN until line=''
  135.    if NoCarrier() then call Die
  136.    OPTIONS PROMPT '>'
  137.    PARSE PULL line
  138.    ADD = STRIP(ADD line)
  139.  end
  140.  
  141. if ADD=='' then do
  142.    call BEGIN
  143.    end
  144.  
  145. lines = 0
  146. do while length(ADD) > 79
  147.    pointer = 79
  148.    do for 79 while substr(ADD,pointer,1)~=' '
  149.       pointer = pointer - 1
  150.       end
  151.    lines = lines + 1
  152.    ADD.lines = left(ADD,pointer)
  153.    ADD = substr(ADD,pointer+1)
  154.    end
  155. if length(ADD) > 0 then do
  156.    lines = lines + 1
  157.    ADD.lines = ADD
  158.    end
  159.  CALL TRANSMIT ' '
  160.  
  161. MAKESURE:
  162.  OPTIONS PROMPT 'Add lines to the story? (Y/n) :'
  163.  PULL choice
  164.  if choice = 'N' then call BEGIN 
  165.  
  166. WRITELINE: 
  167. CALL TRANSMIT BLU" Yes!"OFF
  168. CALL TRANSMIT "Adding to"MFILE"...."
  169. IF EXISTS(DATFILE) THEN call open file, DATFILE,'A'
  170. ELSE call open file, DATFILE,'W'
  171.  do i = 1 to lines
  172.    call writeln file,ADD.i
  173.  end
  174. call close file
  175. call BEGIN
  176.  
  177. CloseShop:
  178. Die:
  179. exit
  180. return
  181.  
  182. NoCarrier:
  183. IF ADDRESS()~='BAUD' THEN RETURN 0
  184.    dcd
  185.    carrier = RC
  186.    if carrier==0 then 
  187.       rv = 1
  188.    else
  189.       rv = 0
  190. return(rv)
  191.  
  192. /*************************************************************************/
  193.  
  194. IOERR:
  195.    CALL TRANSMIT '*BOOM*  IO error in StoryBoard.  PLEASE notify the sysop.'
  196.    CALL TRANSMIT 'Line:' SIGL
  197.    call CloseShop
  198. exit
  199.  
  200. ERROR:
  201.    CALL TRANSMIT '*BOOM*  Error in StoryBoard.  PLEASE notify the sysop.'
  202.    CALL TRANSMIT 'Line:' SIGL '   Severity:' RC
  203.    call CloseShop
  204. exit
  205.  
  206. SYNTAX:
  207.    CALL TRANSMIT '*BOOM*  Syntax error in StoryBoard.  PLEASE notify the sysop.'
  208. BREAK_C:
  209.    CALL TRANSMIT 'Line:' SIGL '   Error Code:' RC
  210. call CloseShop
  211. exit
  212.  
  213. transmit:
  214. PARSE ARG string
  215. SAY string'0D'x
  216. RETURN
  217.  
  218. /*************************************************************************/
  219.